home *** CD-ROM | disk | FTP | other *** search
/ PC World 2007 January / PCWorld_2007-01_cd.bin / v cisle / autoit / autoit-v3.2.0.1-setup.exe / Examples / Helpfile / WinGetCaretPos.au3 < prev    next >
Text File  |  2006-06-17  |  880b  |  29 lines

  1. $a = WinGetCaretPos()
  2. If Not @error Then ToolTip("First Method Pos", $a[0], $a[1])
  3. sleep(2000)
  4.  
  5. $b = _CaretPos()
  6. If Not @error Then ToolTip("Second Method Pos", $b[0], $b[1])
  7. sleep(2000)
  8.  
  9. ; More reliable method to get caret coords in MDI text editors.
  10. Func _CaretPos()
  11.     Local $x_adjust =  5
  12.     Local $y_adjust = 40
  13.  
  14.     Opt("CaretCoordMode", 0)              ;relative mode
  15.     Local $c = WinGetCaretPos()           ;relative caret coords
  16.     Local $w = WinGetPos("")              ;window's coords
  17.     Local $f = ControlGetFocus("","")     ;text region "handle"
  18.     Local $e = ControlGetPos("", "", $f)  ;text region coords
  19.  
  20.     Local $t[2]
  21.     If IsArray($c) and IsArray($w) and IsArray($e) Then
  22.         $t[0] = $c[0] + $w[0] + $e[0] + $x_adjust
  23.         $t[1] = $c[1] + $w[1] + $e[1] + $y_adjust
  24.         Return $t     ;absolute screen coords of caret cursor
  25.     Else
  26.         SetError(1)
  27.     EndIf
  28. EndFunc
  29.